package almata.dai.jhuguet;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * Classe aparell amb els atributs de codi, descripcio, marca, model, codi_sala
 * 
 * @author Joan Ramon
 */

public class Aparell {
	
	private String codi;
	private String descripcio;
	private String marca;
	private String model;
	private String codi_sala;
	
	/**
	 * 
	 * @param codi
	 * @param descripcio
	 * @param marca
	 * @param model
	 * @param codi_sala
	 */
	
	
	public Aparell(String codi, String descripcio, String marca, String model, String codi_sala) {
		super();
		this.codi = codi;
		this.descripcio = descripcio;
		this.marca = marca;
		this.model = model;
		this.codi_sala= codi_sala;
	}
	
	public Aparell(String descripcio, String marca, String model, String codi_sala) {
		super();
		this.descripcio = descripcio;
		this.marca = marca;
		this.model = model;
		this.codi_sala= codi_sala;
	}
	
	public String getCodi() {
		return codi;
	}
	public void setCodi(String codi) {
		this.codi = codi;
	}
	public String getDescripcio() {
		return descripcio;
	}
	public void setDescripcio(String descripcio) {
		this.descripcio = descripcio;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getModel() {
		return model;
	}
	public void setModel(String model) {
		this.model = model;
	}
	public String getCodi_sala() {
		return codi_sala;
	}

	public void setCodi_sala(String codi_sala) {
		this.codi_sala = codi_sala;
	}

	/**
	 * Aquesta funcio ens permet crear o actualitza els diferents aparells
	 * 
	 */
	
	public void gravarAparell(){
		
		PreparedStatement pstmt = null;
		Statement stmt = null;
		ResultSet rs = null;
		Connection conn = null;
		
		ConnectorBD connector = new ConnectorBD();
		GestorBD gestor = new GestorBD();
		
		try{
			conn = connector.getConnection();
			if(!gestor.existeixBD("aparells",this.getCodi())){ // si no existeix a la BD l'inserim.
				pstmt = conn.prepareStatement("INSERT INTO aparells(descripcio,marca,model,codi_sala) VALUES (?,?,?,?)");
				
				pstmt.setString(1, this.getDescripcio());
				pstmt.setString(2, this.getMarca());
				pstmt.setString(3, this.getModel());
				pstmt.setString(4, this.getCodi_sala());
				
				pstmt.executeUpdate();	
			}
			else
			{ // si ja existeix farem un update.
				pstmt = conn.prepareStatement("UPDATE aparells SET descripcio=?, marca=?, model=?, codi_sala=? WHERE codi = ?");
				
				pstmt.setString(1, this.getDescripcio());
				pstmt.setString(2, this.getMarca());
				pstmt.setString(3, this.getModel());
				pstmt.setString(4, this.getCodi_sala());
				pstmt.setString(5, this.getCodi());
				
				pstmt.executeUpdate();	
			
			}

		}catch(Exception e){
			System.err.println("ha hagut un error en la base de dades");
			e.printStackTrace();
		}finally{
			// release the connection
			try{
				if(pstmt!=null)
					pstmt.close();
			}catch(Exception e1){}
			
			try{
				if(conn!=null) conn.close();
			}catch(Exception e){}
		}
		
	}

	/**
	 * Aquesta funcio ens permet eleminar els aparells seleccionats
	 * 
	 * @throws Exception
	 */
	
	public void eliminarAparell() throws Exception {
	
	PreparedStatement pstmt = null;
	Statement stmt = null;
	ResultSet rs = null;
	Connection conn = null;
	
	ConnectorBD connector = new ConnectorBD();
	
	conn = connector.getConnection();

	pstmt = conn.prepareStatement("DELETE FROM aparells WHERE codi='"+ this.getCodi() + "'");
	pstmt.executeUpdate();

	}
}
